Technical Field
The present invention relates to flash memory, and in particular to methods for read retries and apparatuses using the same.
Description of the Related Art
Flash memory devices typically include NOR flash devices and NAND flash devices. NOR flash devices are random access—a host accessing a NOR flash device can provide the device any address on its address pins and immediately retrieve data stored in that address on the device's data pins. NAND flash devices, on the other hand, are not random access but serial access. It is not possible for NOR to access any random address in the way described above. Instead, the host has to write into the device a sequence of bytes which identifies both the type of command requested (e.g. read, write, erase, etc.) and the address to be used for that command. The address identifies a page (the smallest chunk of flash memory that can be written in a single operation) or a block (the smallest chunk of flash memory that can be erased in a single operation), and not a single byte or word. In reality, the NAND flash device always reads complete pages from the memory cells and writes complete pages to the memory cells. After a page of data is read from the array into a buffer inside the device, the host can access the data bytes or words one by one by serially clocking them out using a strobe signal.
The NAND flash device is made in a relatively small size, and the data retention, read disturbance, or other factors cause data to be difficult to be read out correctly. Read retry is basically a trial-and-error loop, in which a controller attempts to set threshold voltages one by one according to the settings of a predefined data table until error bits can be recovered by an ECC (error check and correction) decoder. The performance is becoming worse, which is a result of frequent read-retries when the NAND flash device is aged and a large number of reads need to undergo a read retry. Accordingly, what is needed are methods for read retries and apparatuses using the same to improve performance.